import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

const books = [
  {"id": 1, "title": "Python编程", "author": "John Doe", "copies": 4},
  {"id": 2, "title": "历史的秘密", "author": "Jane Smith", "copies": 3},
  {"id": 3, "title": "宇宙探索", "author": "Emily Brown", "copies": 2},
  {"id": 4, "title": "健康生活", "author": "Mike Johnson", "copies": 5},
  {"id": 5, "title": "数学之美", "author": "Sarah Lee", "copies": 4},
  {"id": 6, "title": "艺术欣赏", "author": "David White", "copies": 3},
  {"id": 7, "title": "编程入门", "author": "Alice Green", "copies": 2},
  {"id": 8, "title": "科幻世界", "author": "Frank Black", "copies": 5},
  {"id": 9, "title": "自然奇观", "author": "Grace Blue", "copies": 4},
  {"id": 10, "title": "音乐之声", "author": "Tom Red", "copies": 3}
]

export default new Vuex.Store({
  state: {
    books: books
  },
  mutations: {
    ADD_BOOK(state, book) {
      const newId = Math.max(...state.books.map(b => b.id)) + 1
      state.books.push({ ...book, id: newId })
    },
    DELETE_BOOK(state, book) {
      state.books = state.books.filter(b => b.id !== book.id)
    }
  },
  actions: {
    addBook({ commit }, book) {
      commit('ADD_BOOK', book)
    },
    deleteBook({ commit }, book) {
      commit('DELETE_BOOK', book)
    }
  }
})